﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Diagnostics;


namespace AccesoADatos
{

    /// <summary>
    /// Clase que contiene la conexion con la BD y la cual sera utilizado solo por los elementos
    /// que esten en el Acceso A Datos
    /// </summary>
    public class Conexion
    {

        #region Atributos

        private static String nombreBD = "bd_betting_dt";
        private static String fuenteDatos = "localhost\\";
        private static String cadenaDeConexion = "Data Source =" + FuenteDatos + ";" + "Initial Catalog =" + NombreBD + ";" + "Integrated Security = SSPI;";
        private static SqlConnection conexion = new SqlConnection();

        #endregion

        #region Encapsulamiento

        public static SqlConnection AccederAconexion
        {
            get { return conexion; }
            set { conexion = value; }
        }

        public static String NombreBD
        {
            get { return nombreBD; }
            set { nombreBD = value; }
        }

        public static String FuenteDatos
        {
            get { return fuenteDatos; }
            set { fuenteDatos = value; }
        }

        public void SetCadenaConexion(String fuenteDatos, String nombreBD)
        {
            NombreBD = nombreBD;
            FuenteDatos = fuenteDatos;
            cadenaDeConexion = "Data Source =" + fuenteDatos + ";" + "Initial Catalog =" + nombreBD + ";" + "Integrated Security = SSPI;";
        }

        /// <summary>
        /// Metodo que retorna la cadena de conexion actual a la base de datos.
        /// </summary>
        /// <returns></returns>
        public String GetCadenaConexion()
        {
            return (cadenaDeConexion);
        }

        #endregion

        #region Constructores

        public Conexion()
        {

        }
        public Conexion(string nombre, string fuentedatos)
        {

            nombreBD = nombre;
            fuenteDatos = fuentedatos;
            cadenaDeConexion = "Data Source =" + fuenteDatos + ";" + "Initial Catalog =" + nombreBD + ";" + "Integrated Security = SSPI;";


        }

        #endregion

        #region Metodos

        /// <summary>
        /// Metodo que permite establecer conexion con la base de datos.
        /// </summary>
        public void AbrirConexionBd()
        {
            try
            {
                String estadoConexion = null;
                estadoConexion = conexion.State.ToString();

                if (estadoConexion.Equals("Open"))
                    conexion.Close();

                conexion.ConnectionString = GetCadenaConexion();
                conexion.Open();
            }

            catch (SqlException)
            {

            }

        }

        /// <summary>
        /// Metodo que permite cerrar la conexion a la base de datos
        /// </summary>
        public void CerrarConexionBd()
        {
            String estadoConexion = null;
            estadoConexion = conexion.State.ToString();

            if (estadoConexion.Equals("Open"))

                conexion.Close();
        }

        public SqlConnection ObjetoConexion()
        {
            return (conexion);
        }

        #endregion
    }

}
